﻿using Nemerle;
using Nemerle.Collections;
using Nemerle.Text;
using Nemerle.Utility;

using System;
using System.Reflection;
using System.Collections.Generic;
using System.Linq;

using Nitra.Declarations;
using DotNet;

namespace Ammy.Backend
{
  public interface IAssemblyTypeDeclaration
  {
    Assembly : Assembly { get; set; }
  }
  
  [Record]
  public class AssemblyTypeDeclaration[TSymbol] : ExternalTopTypeDeclaration[TSymbol], IAssemblyTypeDeclaration where TSymbol : DeclarationSymbol, new()
  {
    public Assembly : Assembly { get; set; }
    
    public override CreateSymbol() : DeclarationSymbol { 
      TSymbol()
    }
  }
}
